﻿// Decompiled with JetBrains decompiler
// Type: MCM.LightInject.ConstructorDependencySelector
// Assembly: MCMv5, Version=5.10.2.0, Culture=neutral, PublicKeyToken=null
// MVID: 7AB326B9-B2B4-41C2-9177-68E944071101
// Assembly location: D:\steam\steamapps\workshop\content\261550\2859238197\bin\Win64_Shipping_Client\MCMv5.dll

using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Reflection;

#nullable disable
namespace MCM.LightInject
{
  [ExcludeFromCodeCoverage]
  internal class ConstructorDependencySelector : IConstructorDependencySelector
  {
    public virtual IEnumerable<ConstructorDependency> Execute(ConstructorInfo constructor)
    {
      return ((IEnumerable<ParameterInfo>) constructor.GetParameters()).OrderBy<ParameterInfo, int>((Func<ParameterInfo, int>) (p => p.Position)).Select<ParameterInfo, ConstructorDependency>((Func<ParameterInfo, ConstructorDependency>) (p =>
      {
        return new ConstructorDependency()
        {
          ServiceName = string.Empty,
          ServiceType = p.ParameterType,
          Parameter = p,
          IsRequired = true
        };
      }));
    }
  }
}
